package com.hjm.strategy;

import com.hjm.common.api.ls.leshua.entity.AccountAmount;
import com.hjm.project.channel.agent.domain.ChannelAgent;
import com.hjm.project.channel.agent.domain.request.AgentRequest;
import com.hjm.project.channel.payment.domain.ChannelPayment;

/**
 * 渠道代理商策略接口
 */
public interface AgentStrategy {

    /**
     * 新增代理商
     */
    void addAgent(ChannelAgent channelAgent, AgentRequest request);

    /**
     * 修改代理商
     */
    void updateAgent(ChannelAgent channelAgent, AgentRequest agentRequest);

    /**
     * 文件上传
     */
    String uploadFile(String localPath);

    /**
     * 划拨转账
     * @return 划拨结果
     */
    void transfer(ChannelPayment channelPayment);
    void queryTransfer(ChannelPayment channelPayment);
    /**
     * 代理商提现
     * @return 提现结果
     */
    void withdraw(ChannelPayment channelPayment);

    /**
     * 代理商提现查询
     * @return 查询结果
     */
    void queryWithdraw(ChannelPayment channelPayment);

    /**
     * 代理商余额查询
     * @param channelAgent 渠道代理商信息
     * @return 余额信息
     */
    AccountAmount queryBalance(ChannelAgent channelAgent);
}
